package mspbots.data.manage.core;

import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Map;

/**
 * mspbots.data.cw.utils.QueryBody
 * <a href="https://developer.connectwise.com/Products/Manage/Developer_Guide">developer.connectwise.com</a>
 * =, !=, <, <=, >, >=, contains, like, not
 * <p>
 * Strings	Must be surrounded by quotes	Summary = "This is my string" (Accepts *'s for Wild Cards)
 * Integers	No formatting required	Board/Id = 123
 * Boolean	No formatting required but must be True or False	ClosedFlag = True
 * Datetimes	Must be surrounded by square brackets	LastUpdated = [2016-08-20T18:04:26Z]
 * Operators	<, <=, =, !=, >, >=, contains, like, in, not	Summary Not Contains "Low Priority"
 * Logic Operators	Supported operators include:
 * AND
 * OR
 * board/name="integration" and summary="xyz"
 * board/name="integration" or board/name="professional services"
 * <p>
 * Reference*	Must have a / followed by the field under the reference you would like to use	manufacturer/name
 *
 * @author <a href="https://github.com/vnobo">Alex bob</a>
 * @date Created by 2020/7/9
 */
@Data
public class QueryBody implements Serializable {

    @NotNull(message = "Query params [client] can't null.")
    private String client;

    @NotNull(message = "Query params [path] can't null.")
    private String path;

    @NotNull(message = "Query params [params] can't null.")
    private Map<String, Object> params;

}
